package dp;

import java.util.Map;
import md.DiccionarioMD;

/**
 * La clase DiccionarioDP maneja el dominio del problema de los datos de la clase
 * DiccionarioMD.
 *
 * @author Enrico Jimenez
 * @version 1.0
 */
public class DiccionarioDP {

    private int idPalabra;
    private String palabra;
    private DiccionarioMD diccionarioMd;

    /**
     * Constructor vacio.
     * Settea los atributos a los valores por defecto
     */
    public DiccionarioDP() {
        this.idPalabra = -1;
        this.palabra = "";
        this.diccionarioMd = new DiccionarioMD();
    }

    /**
     * Inserta un nuevo sisstema a la BDD.
     *
     * @return Retorna TRUE si es que se realiza con exito el ingreso.
     */
    public boolean insertarPalabra() {
        setDatosMd();
        return this.diccionarioMd.insertarPalabra();
    }

    /**
     * Modifica la palabra existente en la BDD.
     *
     * @return Devuelve TRUE si es que se modifica con exito la palabra.
     */
    public boolean modificarPalabra() {
        setDatosMd();
        return this.diccionarioMd.modificarPalabra();
    }

    /**
     * Elimina una palabra existente en la BDD.
     *
     * @return Devuelve TRUE si es que se elimina con exito la palabra.
     */
    public boolean eliminarPalabra() {
        setDatosMd();
        return this.diccionarioMd.eliminarPalabra();
    }

    /**
     * Metodo que permite obtener las palabras de la BDD.
     *
     * @return Devuelve una lista con los sistemas disponibles de la BDD
     */
    public Map getPalabrass() {
        return this.diccionarioMd.getPalabras();
    }

    /**
     * Setea los atributos de la clase MD de acuerdo a los atributos de la DP
     */
    public void setDatosMd() {
        this.diccionarioMd.setIdPalabra(this.idPalabra);
        this.diccionarioMd.setPalabra(this.palabra);
    }

    /***************************************
     * Getters & Setters
     ***************************************/
    public int getIdSistema() {
        return idPalabra;
    }

    public String getNombreSistema() {
        return palabra;
    }

    public DiccionarioMD getDiccionarioMd() {
        return diccionarioMd;
    }

    public void setDiccionarioMd(DiccionarioMD diccionarioMd) {
        this.diccionarioMd = diccionarioMd;
    }

    public int getIdPalabra() {
        return idPalabra;
    }

    public void setIdPalabra(int idPalabra) {
        this.idPalabra = idPalabra;
    }

    public String getPalabra() {
        return palabra;
    }

    public void setPalabra(String palabra) {
        this.palabra = palabra;
    }
}
